package cz.stv.pecinovsky.město;

import cz.stv.pecinovsky.utility.Barva;
import cz.stv.pecinovsky.utility.Pozice;


/*******************************************************************************
 * Instance rozhraní {@code ITovárnaOkruhů} představují továrny určené
 * k vytváření okruhů, po kterých mohou jezdit různá vozidla.
 *
 * @author  Rudolf PECINOVSKÝ
 * @version 1.10.2678 — 2011-10-27
 */
public interface ITovárnaOkruhů
{
//== VEŘEJNÉ KONSTANTY =========================================================
//== DEKLAROVANÉ METODY ========================================================

    /***************************************************************************
     * Vytvoří okruh implicitní barvy se startovním polem na zadané pozici.
     *
     * @param startPozice Pozice startovního pole vytvářeného okruhu
     * @return Vytvořený okruh
     */
//    @Override
    public Okruh vytvořOkruh(Pozice startPozice);


    /***************************************************************************
     * Vytvoří okruh zadané barvy se startovním polem na zadané pozici.
     *
     * @param startPozice Pozice startovního pole vytvářeného okruhu
     * @param barva       Barva vytvářeného okruhu
     * @return Vytvořený okruh
     */
//    @Override
    public Okruh vytvořOkruh(Pozice startPozice, Barva barva);


    /***************************************************************************
     * Nastaví implicitní barvu vytvářených okruhů.
     *
     * @param barva Nastavovaná implicitní barva
     * @return Dříve nastavená implicitní barva
     */
//    @Override
    public Barva setImplicitníBarva(Barva barva);



//== ZDĚDĚNÉ METODY ============================================================
//== INTERNÍ DATOVÉ TYPY =======================================================
}

